/*
 * Copyright 2020 by OLTPBenchmark Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference
// Implementation, v2.3.0.1
// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2023.11.16 at 08:29:59 AM UTC
//

package com.oltpbenchmark.api.templates;

import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.annotation.XmlElementDecl;
import jakarta.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;

/**
 * This object contains factory methods for each Java content interface and Java element interface
 * generated in the main.java.com.oltpbenchmark.api.templates package.
 *
 * <p>An ObjectFactory allows you to programatically construct new instances of the Java
 * representation for XML content. The Java representation of XML content can consist of schema
 * derived interfaces and classes representing the binding of schema type definitions, element
 * declarations and model groups. Factory methods for each of these are provided in this class.
 */
@XmlRegistry
public class ObjectFactory {

  private static final QName _Templates_QNAME = new QName("", "templates");

  /**
   * Create a new ObjectFactory that can be used to create new instances of schema derived classes
   * for package: main.java.com.oltpbenchmark.api.templates
   */
  public ObjectFactory() {}

  /** Create an instance of {@link TemplatesType } */
  public TemplatesType createTemplatesType() {
    return new TemplatesType();
  }

  /** Create an instance of {@link TemplateType } */
  public TemplateType createTemplateType() {
    return new TemplateType();
  }

  /** Create an instance of {@link TypesType } */
  public TypesType createTypesType() {
    return new TypesType();
  }

  /** Create an instance of {@link ValuesType } */
  public ValuesType createValuesType() {
    return new ValuesType();
  }

  /** Create an instance of {@link ValueType } */
  public ValueType createValueType() {
    return new ValueType();
  }

  /**
   * Create an instance of {@link JAXBElement }{@code <}{@link TemplatesType }{@code >}
   *
   * @param value Java instance representing xml element's value.
   * @return the new instance of {@link JAXBElement }{@code <}{@link TemplatesType }{@code >}
   */
  @XmlElementDecl(namespace = "", name = "templates")
  public JAXBElement<TemplatesType> createTemplates(TemplatesType value) {
    return new JAXBElement<TemplatesType>(_Templates_QNAME, TemplatesType.class, null, value);
  }
}
